package MapDemo;

import java.util.*;

/**
 * Map的遍历
 * Map提供了三种遍历方式：
 * 1：遍历所有的Map
 * 2：遍历每一组的键值对
 * 3：遍历所有的value（相对不常用）
 */
public class MapDemo02 {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<String, Integer>();
        map.put("语文",99);
        map.put("数学",98);
        map.put("英语",97);
        map.put("化学",96);
        map.put("历史",95);
        /*
        遍历所有的key
        Set keySet（）
        将当前所有的key以一个set集合形式返回
         */
        Set<String> keySet = map.keySet();
        for (String key : keySet){
            System.out.println(key);
        }
        /*
        Set entrySet()
        将当前Map中的每个键值对以一个Entry实例形式表示并存入一个Set
        集合后将其返回
         */
        Set<Map.Entry<String,Integer>> entrySet = map.entrySet();
        for (Map.Entry<String,Integer> e : entrySet){
            String key = e.getKey();
            Integer value = e.getValue();
            System.out.println(key+":"+value);
        }
        /*
        Collection values()
        将当前Map 中所有的value以一个集合的形式返回
         */
        Collection<Integer> values = map.values();
        for (Integer v : values){
            System.out.println(v);
        }

        /*
        JDK 8 之后遍历集合和Map时可以使用foreach方法利用lambda表达式进行遍历
         */
        map.forEach((k,v)-> System.out.println(k+":"+v));

        Collection<String> c = new ArrayList<>() ;
        c.add("111");
        c.add("www");
        c.add("rrr");
        c.add("333");
        c.add("666");
        System.out.println(c);
        c.forEach( e-> System.out.println(e));
    }
}
